/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.view;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dsw2.biblioteca.bl.CategoriaBlLocal;
import mx.its.dsw2.biblioteca.enumeraciones.EnumColores;
import mx.its.dsw2.biblioteca.modelo.Categoria;

/**
 *
 * @author 100101
 */
@ManagedBean
@SessionScoped
public class CategoryBean {
    @EJB
    private CategoriaBlLocal categoriaBl;
    private List<Categoria> lista;
    private List<Integer>ListaColores;
    private Categoria categoria;
    private String accion;
    /**
     * Creates a new instance of CategoryBean
     */
    public CategoryBean() {
        categoria=new Categoria();
    }

    public List<Integer> getListaColores() {
        ListaColores=new ArrayList<Integer>();
        EnumColores[] items=EnumColores.values();
        for(EnumColores c:items){
            ListaColores.add(c.ordinal());
        }
        return ListaColores;
    }

    
    public Categoria getCategoria() {
        return categoria;
    }

    public void setCategoria(Categoria categoria) {
        this.categoria = categoria;
    }

    public List<Categoria> getList() {
        lista= categoriaBl.getAll();
        return lista;
    }
    
    public String procesarAccion(){
        if(accion.equalsIgnoreCase("Nuevo")){
        categoriaBl.register(categoria);
        }else{
            if(accion.equalsIgnoreCase("Editar")){
                categoriaBl.modify(categoria);
            }else{
                if(accion.equalsIgnoreCase("Eliminar")){
                    categoriaBl.remove(categoria);
                }
            }
        }
        accion="";
        return "CategoryList";
    }
    
     public void prepararNuevo(ActionEvent evt){//hace primero el listener y luego carga lo demas
        //tienes informacion de la vista 
         accion="Nuevo";
        categoria= new Categoria();
    }
     
     public void prepararEditar(ActionEvent evt){
         accion="Editar";
         int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
         categoria=lista.get(index);
     }
     
     public void prepararEliminar(ActionEvent evt){
         accion="Eliminar";
         int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
         categoria=lista.get(index);
     }
     
     public String llamadaPaginas(){
         String link="";
         if(accion.equalsIgnoreCase("Editar")||accion.equalsIgnoreCase("Nuevo")){
             link="CategoryCreateEdit";
         }else{
             if(accion.equalsIgnoreCase("Eliminar")){
                 link="CategoryList";
             }
             }
         
         return link;
     }
    
}
